home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / game / shoot / ADescentSrc.lha / descent / main / vclip.c < prev    next >
C/C++ Source or Header  |  1998-03-22  |  3KB  |  88 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: /usr/CVS/descent/main/vclip.c,v $
  15.  * $Revision: 1.2 $
  16.  * $Author: tfrieden $
  17.  * $Date: 1998/03/22 15:26:50 $
  18.  * 
  19.  * Routines for vclips.
  20.  * 
  21.  * $Log: vclip.c,v $
  22.  * Revision 1.2  1998/03/22 15:26:50  tfrieden
  23.  * removed lots of warning messages
  24.  *
  25.  * Revision 1.1.1.1  1998/03/03 15:12:31  nobody
  26.  * reimport after crash from backup
  27.  *
  28.  * Revision 1.1.1.1  1998/02/13  20:21:04  hfrieden
  29.  * Initial Import
  30.  */
  31.  
  32. #pragma off (unreferenced)
  33. static char rcsid[] = "$Id: vclip.c,v 1.2 1998/03/22 15:26:50 tfrieden Exp $";
  34. #pragma on (unreferenced)
  35.  
  36. #include "error.h"
  37.  
  38. #include "inferno.h"
  39. #include "vclip.h"
  40. #include "weapon.h"
  41.  
  42. //----------------- Variables for video clips -------------------
  43. int                     Num_vclips = 0;
  44. vclip               Vclip[VCLIP_MAXNUM];        // General purpose vclips.
  45.  
  46. //draw an object which renders as a vclip
  47. void draw_vclip_object(object *obj,fix timeleft,int lighted, int vclip_num)
  48. {
  49.     int nf,bitmapnum;
  50.  
  51.     nf = Vclip[vclip_num].num_frames;
  52.  
  53.     bitmapnum =  (nf - f2i(fixdiv( (nf-1)*timeleft,Vclip[vclip_num].play_time))) - 1;
  54.  
  55.     if (bitmapnum >= Vclip[vclip_num].num_frames)
  56.         bitmapnum=Vclip[vclip_num].num_frames-1;
  57.  
  58.     if (bitmapnum >= 0 )    {
  59.  
  60.         if (Vclip[vclip_num].flags & VF_ROD)
  61.             draw_object_tmap_rod(obj, Vclip[vclip_num].frames[bitmapnum],lighted);
  62.         else {
  63.             Assert(lighted==0);     //blob cannot now be lighted
  64.  
  65.             draw_object_blob(obj, Vclip[vclip_num].frames[bitmapnum] );
  66.         }
  67.     }
  68.  
  69. }
  70.  
  71.  
  72. void draw_weapon_vclip(object *obj)
  73. {
  74.     int vclip_num;
  75.     fix modtime;
  76.  
  77.     //mprintf( 0, "[Drawing obj %d type %d fireball size %x]\n", obj-Objects, Weapon_info[obj->id].weapon_vclip, obj->size );
  78.  
  79.     vclip_num = Weapon_info[obj->id].weapon_vclip;
  80.     modtime = obj->lifeleft;
  81.     while (modtime > Vclip[vclip_num].play_time)
  82.         modtime -= Vclip[vclip_num].play_time;
  83.  
  84.     draw_vclip_object(obj, modtime, 0, vclip_num);
  85.  
  86. }
  87.  
  88.